package com.hui.java.concurrency;

/**
 * TODO: 线程异常
 *
 * @author chenth
 * @create 2019-04-16 22:21
 **/
public class ThreadExceptionQuestion {


    public static void main(String[] args) throws InterruptedException {
        //异常的捕获
        Thread.setDefaultUncaughtExceptionHandler((thread,throwable) -> {
            System.out.printf("线程[%s]执行时遇到了异常，详细信息：%s \n",
                    thread.getName(),
                    throwable.getMessage()
            );
        });
        Thread thread = new Thread(() -> {
            System.out.printf("线程[%s]正在执行.\n",Thread.currentThread().getName());
            throw new RuntimeException("虚拟异常");
        },"t1");
        thread.start();
        //main线程会中断吗？
        thread.join();
        //Thread 是一个包装，他有GC垃圾回收机制
        //可能是一个OS Thread JVM管理   线程执行完毕有两种情况，一种是正常执行完毕，另一种是异常
        System.out.println("线程是否还存活？ " + thread.isAlive());
    }
}
